package de.sabram.upb.specs.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import de.sabram.upb.specs.services.ConGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalConParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_INT", "RULE_ANY_OTHER", "':'", "'::='", "'//'", "'||'", "'/'", "'|'", "'*'", "'+'", "'$'", "'@'", "'.'", "'='", "'['", "']'", "'('", "')'", "'&'"
    };
    public static final int RULE_ID=4;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=7;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=6;
    public static final int T__19=19;
    public static final int RULE_STRING=5;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=9;
    public static final int RULE_WS=8;

    // delegates
    // delegators


        public InternalConParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalConParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalConParser.tokenNames; }
    public String getGrammarFileName() { return "../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g"; }


     
     	private ConGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(ConGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleConSpec"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:60:1: entryRuleConSpec : ruleConSpec EOF ;
    public final void entryRuleConSpec() throws RecognitionException {

        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");

        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:64:1: ( ruleConSpec EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:65:1: ruleConSpec EOF
            {
             before(grammarAccess.getConSpecRule()); 
            pushFollow(FOLLOW_ruleConSpec_in_entryRuleConSpec66);
            ruleConSpec();

            state._fsp--;

             after(grammarAccess.getConSpecRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleConSpec73); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	myHiddenTokenState.restore();

        }
        return ;
    }
    // $ANTLR end "entryRuleConSpec"


    // $ANTLR start "ruleConSpec"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:75:1: ruleConSpec : ( ( rule__ConSpec__RulesAssignment )* ) ;
    public final void ruleConSpec() throws RecognitionException {

        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:80:2: ( ( ( rule__ConSpec__RulesAssignment )* ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:81:1: ( ( rule__ConSpec__RulesAssignment )* )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:81:1: ( ( rule__ConSpec__RulesAssignment )* )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:82:1: ( rule__ConSpec__RulesAssignment )*
            {
             before(grammarAccess.getConSpecAccess().getRulesAssignment()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:83:1: ( rule__ConSpec__RulesAssignment )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==RULE_ID) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:83:2: rule__ConSpec__RulesAssignment
            	    {
            	    pushFollow(FOLLOW_rule__ConSpec__RulesAssignment_in_ruleConSpec103);
            	    rule__ConSpec__RulesAssignment();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

             after(grammarAccess.getConSpecAccess().getRulesAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);
            	myHiddenTokenState.restore();

        }
        return ;
    }
    // $ANTLR end "ruleConSpec"


    // $ANTLR start "entryRuleRule"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:96:1: entryRuleRule : ruleRule EOF ;
    public final void entryRuleRule() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:97:1: ( ruleRule EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:98:1: ruleRule EOF
            {
             before(grammarAccess.getRuleRule()); 
            pushFollow(FOLLOW_ruleRule_in_entryRuleRule131);
            ruleRule();

            state._fsp--;

             after(grammarAccess.getRuleRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRule138); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleRule"


    // $ANTLR start "ruleRule"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:105:1: ruleRule : ( ( rule__Rule__Group__0 ) ) ;
    public final void ruleRule() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:109:2: ( ( ( rule__Rule__Group__0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:110:1: ( ( rule__Rule__Group__0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:110:1: ( ( rule__Rule__Group__0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:111:1: ( rule__Rule__Group__0 )
            {
             before(grammarAccess.getRuleAccess().getGroup()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:112:1: ( rule__Rule__Group__0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:112:2: rule__Rule__Group__0
            {
            pushFollow(FOLLOW_rule__Rule__Group__0_in_ruleRule164);
            rule__Rule__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getRuleAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleRule"


    // $ANTLR start "entryRuleRHS"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:124:1: entryRuleRHS : ruleRHS EOF ;
    public final void entryRuleRHS() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:125:1: ( ruleRHS EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:126:1: ruleRHS EOF
            {
             before(grammarAccess.getRHSRule()); 
            pushFollow(FOLLOW_ruleRHS_in_entryRuleRHS191);
            ruleRHS();

            state._fsp--;

             after(grammarAccess.getRHSRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRHS198); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleRHS"


    // $ANTLR start "ruleRHS"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:133:1: ruleRHS : ( ( rule__RHS__Group__0 ) ) ;
    public final void ruleRHS() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:137:2: ( ( ( rule__RHS__Group__0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:138:1: ( ( rule__RHS__Group__0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:138:1: ( ( rule__RHS__Group__0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:139:1: ( rule__RHS__Group__0 )
            {
             before(grammarAccess.getRHSAccess().getGroup()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:140:1: ( rule__RHS__Group__0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:140:2: rule__RHS__Group__0
            {
            pushFollow(FOLLOW_rule__RHS__Group__0_in_ruleRHS224);
            rule__RHS__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getRHSAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleRHS"


    // $ANTLR start "entryRuleALT"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:152:1: entryRuleALT : ruleALT EOF ;
    public final void entryRuleALT() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:153:1: ( ruleALT EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:154:1: ruleALT EOF
            {
             before(grammarAccess.getALTRule()); 
            pushFollow(FOLLOW_ruleALT_in_entryRuleALT251);
            ruleALT();

            state._fsp--;

             after(grammarAccess.getALTRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleALT258); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleALT"


    // $ANTLR start "ruleALT"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:161:1: ruleALT : ( ( rule__ALT__Group__0 ) ) ;
    public final void ruleALT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:165:2: ( ( ( rule__ALT__Group__0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:166:1: ( ( rule__ALT__Group__0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:166:1: ( ( rule__ALT__Group__0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:167:1: ( rule__ALT__Group__0 )
            {
             before(grammarAccess.getALTAccess().getGroup()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:168:1: ( rule__ALT__Group__0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:168:2: rule__ALT__Group__0
            {
            pushFollow(FOLLOW_rule__ALT__Group__0_in_ruleALT284);
            rule__ALT__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getALTAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleALT"


    // $ANTLR start "entryRuleElemList"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:180:1: entryRuleElemList : ruleElemList EOF ;
    public final void entryRuleElemList() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:181:1: ( ruleElemList EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:182:1: ruleElemList EOF
            {
             before(grammarAccess.getElemListRule()); 
            pushFollow(FOLLOW_ruleElemList_in_entryRuleElemList311);
            ruleElemList();

            state._fsp--;

             after(grammarAccess.getElemListRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleElemList318); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleElemList"


    // $ANTLR start "ruleElemList"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:189:1: ruleElemList : ( ( rule__ElemList__Alternatives )* ) ;
    public final void ruleElemList() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:193:2: ( ( ( rule__ElemList__Alternatives )* ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:194:1: ( ( rule__ElemList__Alternatives )* )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:194:1: ( ( rule__ElemList__Alternatives )* )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:195:1: ( rule__ElemList__Alternatives )*
            {
             before(grammarAccess.getElemListAccess().getAlternatives()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:196:1: ( rule__ElemList__Alternatives )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>=RULE_ID && LA2_0<=RULE_STRING)||(LA2_0>=17 && LA2_0<=20)||LA2_0==23||LA2_0==25||LA2_0==27) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:196:2: rule__ElemList__Alternatives
            	    {
            	    pushFollow(FOLLOW_rule__ElemList__Alternatives_in_ruleElemList344);
            	    rule__ElemList__Alternatives();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);

             after(grammarAccess.getElemListAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleElemList"


    // $ANTLR start "entryRuleTerminalOrLiteral"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:208:1: entryRuleTerminalOrLiteral : ruleTerminalOrLiteral EOF ;
    public final void entryRuleTerminalOrLiteral() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:209:1: ( ruleTerminalOrLiteral EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:210:1: ruleTerminalOrLiteral EOF
            {
             before(grammarAccess.getTerminalOrLiteralRule()); 
            pushFollow(FOLLOW_ruleTerminalOrLiteral_in_entryRuleTerminalOrLiteral372);
            ruleTerminalOrLiteral();

            state._fsp--;

             after(grammarAccess.getTerminalOrLiteralRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTerminalOrLiteral379); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTerminalOrLiteral"


    // $ANTLR start "ruleTerminalOrLiteral"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:217:1: ruleTerminalOrLiteral : ( ( rule__TerminalOrLiteral__Alternatives ) ) ;
    public final void ruleTerminalOrLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:221:2: ( ( ( rule__TerminalOrLiteral__Alternatives ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:222:1: ( ( rule__TerminalOrLiteral__Alternatives ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:222:1: ( ( rule__TerminalOrLiteral__Alternatives ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:223:1: ( rule__TerminalOrLiteral__Alternatives )
            {
             before(grammarAccess.getTerminalOrLiteralAccess().getAlternatives()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:224:1: ( rule__TerminalOrLiteral__Alternatives )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:224:2: rule__TerminalOrLiteral__Alternatives
            {
            pushFollow(FOLLOW_rule__TerminalOrLiteral__Alternatives_in_ruleTerminalOrLiteral405);
            rule__TerminalOrLiteral__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getTerminalOrLiteralAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTerminalOrLiteral"


    // $ANTLR start "entryRuleReference"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:236:1: entryRuleReference : ruleReference EOF ;
    public final void entryRuleReference() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:237:1: ( ruleReference EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:238:1: ruleReference EOF
            {
             before(grammarAccess.getReferenceRule()); 
            pushFollow(FOLLOW_ruleReference_in_entryRuleReference432);
            ruleReference();

            state._fsp--;

             after(grammarAccess.getReferenceRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleReference439); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleReference"


    // $ANTLR start "ruleReference"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:245:1: ruleReference : ( ( rule__Reference__RefAssignment ) ) ;
    public final void ruleReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:249:2: ( ( ( rule__Reference__RefAssignment ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:250:1: ( ( rule__Reference__RefAssignment ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:250:1: ( ( rule__Reference__RefAssignment ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:251:1: ( rule__Reference__RefAssignment )
            {
             before(grammarAccess.getReferenceAccess().getRefAssignment()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:252:1: ( rule__Reference__RefAssignment )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:252:2: rule__Reference__RefAssignment
            {
            pushFollow(FOLLOW_rule__Reference__RefAssignment_in_ruleReference465);
            rule__Reference__RefAssignment();

            state._fsp--;


            }

             after(grammarAccess.getReferenceAccess().getRefAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleReference"


    // $ANTLR start "entryRuleLiteral"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:264:1: entryRuleLiteral : ruleLiteral EOF ;
    public final void entryRuleLiteral() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:265:1: ( ruleLiteral EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:266:1: ruleLiteral EOF
            {
             before(grammarAccess.getLiteralRule()); 
            pushFollow(FOLLOW_ruleLiteral_in_entryRuleLiteral492);
            ruleLiteral();

            state._fsp--;

             after(grammarAccess.getLiteralRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleLiteral499); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLiteral"


    // $ANTLR start "ruleLiteral"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:273:1: ruleLiteral : ( ( rule__Literal__RefAssignment ) ) ;
    public final void ruleLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:277:2: ( ( ( rule__Literal__RefAssignment ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:278:1: ( ( rule__Literal__RefAssignment ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:278:1: ( ( rule__Literal__RefAssignment ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:279:1: ( rule__Literal__RefAssignment )
            {
             before(grammarAccess.getLiteralAccess().getRefAssignment()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:280:1: ( rule__Literal__RefAssignment )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:280:2: rule__Literal__RefAssignment
            {
            pushFollow(FOLLOW_rule__Literal__RefAssignment_in_ruleLiteral525);
            rule__Literal__RefAssignment();

            state._fsp--;


            }

             after(grammarAccess.getLiteralAccess().getRefAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLiteral"


    // $ANTLR start "entryRuleNonTerminal"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:292:1: entryRuleNonTerminal : ruleNonTerminal EOF ;
    public final void entryRuleNonTerminal() throws RecognitionException {
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:293:1: ( ruleNonTerminal EOF )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:294:1: ruleNonTerminal EOF
            {
             before(grammarAccess.getNonTerminalRule()); 
            pushFollow(FOLLOW_ruleNonTerminal_in_entryRuleNonTerminal552);
            ruleNonTerminal();

            state._fsp--;

             after(grammarAccess.getNonTerminalRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNonTerminal559); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNonTerminal"


    // $ANTLR start "ruleNonTerminal"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:301:1: ruleNonTerminal : ( ( rule__NonTerminal__NameAssignment ) ) ;
    public final void ruleNonTerminal() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:305:2: ( ( ( rule__NonTerminal__NameAssignment ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:306:1: ( ( rule__NonTerminal__NameAssignment ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:306:1: ( ( rule__NonTerminal__NameAssignment ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:307:1: ( rule__NonTerminal__NameAssignment )
            {
             before(grammarAccess.getNonTerminalAccess().getNameAssignment()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:308:1: ( rule__NonTerminal__NameAssignment )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:308:2: rule__NonTerminal__NameAssignment
            {
            pushFollow(FOLLOW_rule__NonTerminal__NameAssignment_in_ruleNonTerminal585);
            rule__NonTerminal__NameAssignment();

            state._fsp--;


            }

             after(grammarAccess.getNonTerminalAccess().getNameAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNonTerminal"


    // $ANTLR start "rule__Rule__Alternatives_2"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:320:1: rule__Rule__Alternatives_2 : ( ( ':' ) | ( '::=' ) );
    public final void rule__Rule__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:324:1: ( ( ':' ) | ( '::=' ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==11) ) {
                alt3=1;
            }
            else if ( (LA3_0==12) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:325:1: ( ':' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:325:1: ( ':' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:326:1: ':'
                    {
                     before(grammarAccess.getRuleAccess().getColonKeyword_2_0()); 
                    match(input,11,FOLLOW_11_in_rule__Rule__Alternatives_2622); 
                     after(grammarAccess.getRuleAccess().getColonKeyword_2_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:333:6: ( '::=' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:333:6: ( '::=' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:334:1: '::='
                    {
                     before(grammarAccess.getRuleAccess().getColonColonEqualsSignKeyword_2_1()); 
                    match(input,12,FOLLOW_12_in_rule__Rule__Alternatives_2642); 
                     after(grammarAccess.getRuleAccess().getColonColonEqualsSignKeyword_2_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Alternatives_2"


    // $ANTLR start "rule__RHS__Alternatives_1_0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:346:1: rule__RHS__Alternatives_1_0 : ( ( '//' ) | ( '||' ) );
    public final void rule__RHS__Alternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:350:1: ( ( '//' ) | ( '||' ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==13) ) {
                alt4=1;
            }
            else if ( (LA4_0==14) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:351:1: ( '//' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:351:1: ( '//' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:352:1: '//'
                    {
                     before(grammarAccess.getRHSAccess().getSolidusSolidusKeyword_1_0_0()); 
                    match(input,13,FOLLOW_13_in_rule__RHS__Alternatives_1_0677); 
                     after(grammarAccess.getRHSAccess().getSolidusSolidusKeyword_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:359:6: ( '||' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:359:6: ( '||' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:360:1: '||'
                    {
                     before(grammarAccess.getRHSAccess().getVerticalLineVerticalLineKeyword_1_0_1()); 
                    match(input,14,FOLLOW_14_in_rule__RHS__Alternatives_1_0697); 
                     after(grammarAccess.getRHSAccess().getVerticalLineVerticalLineKeyword_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Alternatives_1_0"


    // $ANTLR start "rule__ALT__Alternatives_1_0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:372:1: rule__ALT__Alternatives_1_0 : ( ( '/' ) | ( '|' ) );
    public final void rule__ALT__Alternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:376:1: ( ( '/' ) | ( '|' ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==15) ) {
                alt5=1;
            }
            else if ( (LA5_0==16) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:377:1: ( '/' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:377:1: ( '/' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:378:1: '/'
                    {
                     before(grammarAccess.getALTAccess().getSolidusKeyword_1_0_0()); 
                    match(input,15,FOLLOW_15_in_rule__ALT__Alternatives_1_0732); 
                     after(grammarAccess.getALTAccess().getSolidusKeyword_1_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:385:6: ( '|' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:385:6: ( '|' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:386:1: '|'
                    {
                     before(grammarAccess.getALTAccess().getVerticalLineKeyword_1_0_1()); 
                    match(input,16,FOLLOW_16_in_rule__ALT__Alternatives_1_0752); 
                     after(grammarAccess.getALTAccess().getVerticalLineKeyword_1_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Alternatives_1_0"


    // $ANTLR start "rule__ElemList__Alternatives"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:398:1: rule__ElemList__Alternatives : ( ( ( rule__ElemList__Alternatives_0 ) ) | ( ( rule__ElemList__Group_1__0 ) ) | ( ( rule__ElemList__Group_2__0 ) ) );
    public final void rule__ElemList__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:402:1: ( ( ( rule__ElemList__Alternatives_0 ) ) | ( ( rule__ElemList__Group_1__0 ) ) | ( ( rule__ElemList__Group_2__0 ) ) )
            int alt6=3;
            switch ( input.LA(1) ) {
            case RULE_ID:
            case RULE_STRING:
            case 17:
            case 18:
            case 23:
            case 25:
                {
                alt6=1;
                }
                break;
            case 27:
                {
                alt6=2;
                }
                break;
            case 19:
            case 20:
                {
                alt6=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:403:1: ( ( rule__ElemList__Alternatives_0 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:403:1: ( ( rule__ElemList__Alternatives_0 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:404:1: ( rule__ElemList__Alternatives_0 )
                    {
                     before(grammarAccess.getElemListAccess().getAlternatives_0()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:405:1: ( rule__ElemList__Alternatives_0 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:405:2: rule__ElemList__Alternatives_0
                    {
                    pushFollow(FOLLOW_rule__ElemList__Alternatives_0_in_rule__ElemList__Alternatives786);
                    rule__ElemList__Alternatives_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getAlternatives_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:409:6: ( ( rule__ElemList__Group_1__0 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:409:6: ( ( rule__ElemList__Group_1__0 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:410:1: ( rule__ElemList__Group_1__0 )
                    {
                     before(grammarAccess.getElemListAccess().getGroup_1()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:411:1: ( rule__ElemList__Group_1__0 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:411:2: rule__ElemList__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__ElemList__Group_1__0_in_rule__ElemList__Alternatives804);
                    rule__ElemList__Group_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getGroup_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:415:6: ( ( rule__ElemList__Group_2__0 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:415:6: ( ( rule__ElemList__Group_2__0 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:416:1: ( rule__ElemList__Group_2__0 )
                    {
                     before(grammarAccess.getElemListAccess().getGroup_2()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:417:1: ( rule__ElemList__Group_2__0 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:417:2: rule__ElemList__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__ElemList__Group_2__0_in_rule__ElemList__Alternatives822);
                    rule__ElemList__Group_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getGroup_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Alternatives"


    // $ANTLR start "rule__ElemList__Alternatives_0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:426:1: rule__ElemList__Alternatives_0 : ( ( ( rule__ElemList__TerminalOrLiteralAssignment_0_0 ) ) | ( ( rule__ElemList__Group_0_1__0 ) ) | ( ( rule__ElemList__Group_0_2__0 ) ) | ( ( rule__ElemList__Alternatives_0_3 ) ) );
    public final void rule__ElemList__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:430:1: ( ( ( rule__ElemList__TerminalOrLiteralAssignment_0_0 ) ) | ( ( rule__ElemList__Group_0_1__0 ) ) | ( ( rule__ElemList__Group_0_2__0 ) ) | ( ( rule__ElemList__Alternatives_0_3 ) ) )
            int alt7=4;
            switch ( input.LA(1) ) {
            case RULE_ID:
            case RULE_STRING:
                {
                alt7=1;
                }
                break;
            case 23:
                {
                alt7=2;
                }
                break;
            case 25:
                {
                alt7=3;
                }
                break;
            case 17:
            case 18:
                {
                alt7=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }

            switch (alt7) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:431:1: ( ( rule__ElemList__TerminalOrLiteralAssignment_0_0 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:431:1: ( ( rule__ElemList__TerminalOrLiteralAssignment_0_0 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:432:1: ( rule__ElemList__TerminalOrLiteralAssignment_0_0 )
                    {
                     before(grammarAccess.getElemListAccess().getTerminalOrLiteralAssignment_0_0()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:433:1: ( rule__ElemList__TerminalOrLiteralAssignment_0_0 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:433:2: rule__ElemList__TerminalOrLiteralAssignment_0_0
                    {
                    pushFollow(FOLLOW_rule__ElemList__TerminalOrLiteralAssignment_0_0_in_rule__ElemList__Alternatives_0855);
                    rule__ElemList__TerminalOrLiteralAssignment_0_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getTerminalOrLiteralAssignment_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:437:6: ( ( rule__ElemList__Group_0_1__0 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:437:6: ( ( rule__ElemList__Group_0_1__0 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:438:1: ( rule__ElemList__Group_0_1__0 )
                    {
                     before(grammarAccess.getElemListAccess().getGroup_0_1()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:439:1: ( rule__ElemList__Group_0_1__0 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:439:2: rule__ElemList__Group_0_1__0
                    {
                    pushFollow(FOLLOW_rule__ElemList__Group_0_1__0_in_rule__ElemList__Alternatives_0873);
                    rule__ElemList__Group_0_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getGroup_0_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:443:6: ( ( rule__ElemList__Group_0_2__0 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:443:6: ( ( rule__ElemList__Group_0_2__0 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:444:1: ( rule__ElemList__Group_0_2__0 )
                    {
                     before(grammarAccess.getElemListAccess().getGroup_0_2()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:445:1: ( rule__ElemList__Group_0_2__0 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:445:2: rule__ElemList__Group_0_2__0
                    {
                    pushFollow(FOLLOW_rule__ElemList__Group_0_2__0_in_rule__ElemList__Alternatives_0891);
                    rule__ElemList__Group_0_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getGroup_0_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:449:6: ( ( rule__ElemList__Alternatives_0_3 ) )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:449:6: ( ( rule__ElemList__Alternatives_0_3 ) )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:450:1: ( rule__ElemList__Alternatives_0_3 )
                    {
                     before(grammarAccess.getElemListAccess().getAlternatives_0_3()); 
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:451:1: ( rule__ElemList__Alternatives_0_3 )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:451:2: rule__ElemList__Alternatives_0_3
                    {
                    pushFollow(FOLLOW_rule__ElemList__Alternatives_0_3_in_rule__ElemList__Alternatives_0909);
                    rule__ElemList__Alternatives_0_3();

                    state._fsp--;


                    }

                     after(grammarAccess.getElemListAccess().getAlternatives_0_3()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Alternatives_0"


    // $ANTLR start "rule__ElemList__Alternatives_0_3"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:460:1: rule__ElemList__Alternatives_0_3 : ( ( '*' ) | ( '+' ) );
    public final void rule__ElemList__Alternatives_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:464:1: ( ( '*' ) | ( '+' ) )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==17) ) {
                alt8=1;
            }
            else if ( (LA8_0==18) ) {
                alt8=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:465:1: ( '*' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:465:1: ( '*' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:466:1: '*'
                    {
                     before(grammarAccess.getElemListAccess().getAsteriskKeyword_0_3_0()); 
                    match(input,17,FOLLOW_17_in_rule__ElemList__Alternatives_0_3943); 
                     after(grammarAccess.getElemListAccess().getAsteriskKeyword_0_3_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:473:6: ( '+' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:473:6: ( '+' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:474:1: '+'
                    {
                     before(grammarAccess.getElemListAccess().getPlusSignKeyword_0_3_1()); 
                    match(input,18,FOLLOW_18_in_rule__ElemList__Alternatives_0_3963); 
                     after(grammarAccess.getElemListAccess().getPlusSignKeyword_0_3_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Alternatives_0_3"


    // $ANTLR start "rule__ElemList__Alternatives_2_0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:486:1: rule__ElemList__Alternatives_2_0 : ( ( '$' ) | ( '@' ) );
    public final void rule__ElemList__Alternatives_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:490:1: ( ( '$' ) | ( '@' ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==19) ) {
                alt9=1;
            }
            else if ( (LA9_0==20) ) {
                alt9=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:491:1: ( '$' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:491:1: ( '$' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:492:1: '$'
                    {
                     before(grammarAccess.getElemListAccess().getDollarSignKeyword_2_0_0()); 
                    match(input,19,FOLLOW_19_in_rule__ElemList__Alternatives_2_0998); 
                     after(grammarAccess.getElemListAccess().getDollarSignKeyword_2_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:499:6: ( '@' )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:499:6: ( '@' )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:500:1: '@'
                    {
                     before(grammarAccess.getElemListAccess().getCommercialAtKeyword_2_0_1()); 
                    match(input,20,FOLLOW_20_in_rule__ElemList__Alternatives_2_01018); 
                     after(grammarAccess.getElemListAccess().getCommercialAtKeyword_2_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Alternatives_2_0"


    // $ANTLR start "rule__TerminalOrLiteral__Alternatives"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:512:1: rule__TerminalOrLiteral__Alternatives : ( ( ruleReference ) | ( ruleLiteral ) );
    public final void rule__TerminalOrLiteral__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:516:1: ( ( ruleReference ) | ( ruleLiteral ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==RULE_ID) ) {
                alt10=1;
            }
            else if ( (LA10_0==RULE_STRING) ) {
                alt10=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:517:1: ( ruleReference )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:517:1: ( ruleReference )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:518:1: ruleReference
                    {
                     before(grammarAccess.getTerminalOrLiteralAccess().getReferenceParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleReference_in_rule__TerminalOrLiteral__Alternatives1052);
                    ruleReference();

                    state._fsp--;

                     after(grammarAccess.getTerminalOrLiteralAccess().getReferenceParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:523:6: ( ruleLiteral )
                    {
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:523:6: ( ruleLiteral )
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:524:1: ruleLiteral
                    {
                     before(grammarAccess.getTerminalOrLiteralAccess().getLiteralParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleLiteral_in_rule__TerminalOrLiteral__Alternatives1069);
                    ruleLiteral();

                    state._fsp--;

                     after(grammarAccess.getTerminalOrLiteralAccess().getLiteralParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TerminalOrLiteral__Alternatives"


    // $ANTLR start "rule__Rule__Group__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:536:1: rule__Rule__Group__0 : rule__Rule__Group__0__Impl rule__Rule__Group__1 ;
    public final void rule__Rule__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:540:1: ( rule__Rule__Group__0__Impl rule__Rule__Group__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:541:2: rule__Rule__Group__0__Impl rule__Rule__Group__1
            {
            pushFollow(FOLLOW_rule__Rule__Group__0__Impl_in_rule__Rule__Group__01099);
            rule__Rule__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Rule__Group__1_in_rule__Rule__Group__01102);
            rule__Rule__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__0"


    // $ANTLR start "rule__Rule__Group__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:548:1: rule__Rule__Group__0__Impl : ( ( rule__Rule__Group_0__0 )? ) ;
    public final void rule__Rule__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:552:1: ( ( ( rule__Rule__Group_0__0 )? ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:553:1: ( ( rule__Rule__Group_0__0 )? )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:553:1: ( ( rule__Rule__Group_0__0 )? )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:554:1: ( rule__Rule__Group_0__0 )?
            {
             before(grammarAccess.getRuleAccess().getGroup_0()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:555:1: ( rule__Rule__Group_0__0 )?
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==RULE_ID) ) {
                int LA11_1 = input.LA(2);

                if ( (LA11_1==22) ) {
                    alt11=1;
                }
            }
            switch (alt11) {
                case 1 :
                    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:555:2: rule__Rule__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Rule__Group_0__0_in_rule__Rule__Group__0__Impl1129);
                    rule__Rule__Group_0__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getRuleAccess().getGroup_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__0__Impl"


    // $ANTLR start "rule__Rule__Group__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:565:1: rule__Rule__Group__1 : rule__Rule__Group__1__Impl rule__Rule__Group__2 ;
    public final void rule__Rule__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:569:1: ( rule__Rule__Group__1__Impl rule__Rule__Group__2 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:570:2: rule__Rule__Group__1__Impl rule__Rule__Group__2
            {
            pushFollow(FOLLOW_rule__Rule__Group__1__Impl_in_rule__Rule__Group__11160);
            rule__Rule__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Rule__Group__2_in_rule__Rule__Group__11163);
            rule__Rule__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__1"


    // $ANTLR start "rule__Rule__Group__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:577:1: rule__Rule__Group__1__Impl : ( ( rule__Rule__NonTerminalAssignment_1 ) ) ;
    public final void rule__Rule__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:581:1: ( ( ( rule__Rule__NonTerminalAssignment_1 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:582:1: ( ( rule__Rule__NonTerminalAssignment_1 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:582:1: ( ( rule__Rule__NonTerminalAssignment_1 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:583:1: ( rule__Rule__NonTerminalAssignment_1 )
            {
             before(grammarAccess.getRuleAccess().getNonTerminalAssignment_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:584:1: ( rule__Rule__NonTerminalAssignment_1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:584:2: rule__Rule__NonTerminalAssignment_1
            {
            pushFollow(FOLLOW_rule__Rule__NonTerminalAssignment_1_in_rule__Rule__Group__1__Impl1190);
            rule__Rule__NonTerminalAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getRuleAccess().getNonTerminalAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__1__Impl"


    // $ANTLR start "rule__Rule__Group__2"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:594:1: rule__Rule__Group__2 : rule__Rule__Group__2__Impl rule__Rule__Group__3 ;
    public final void rule__Rule__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:598:1: ( rule__Rule__Group__2__Impl rule__Rule__Group__3 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:599:2: rule__Rule__Group__2__Impl rule__Rule__Group__3
            {
            pushFollow(FOLLOW_rule__Rule__Group__2__Impl_in_rule__Rule__Group__21220);
            rule__Rule__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Rule__Group__3_in_rule__Rule__Group__21223);
            rule__Rule__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__2"


    // $ANTLR start "rule__Rule__Group__2__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:606:1: rule__Rule__Group__2__Impl : ( ( rule__Rule__Alternatives_2 ) ) ;
    public final void rule__Rule__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:610:1: ( ( ( rule__Rule__Alternatives_2 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:611:1: ( ( rule__Rule__Alternatives_2 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:611:1: ( ( rule__Rule__Alternatives_2 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:612:1: ( rule__Rule__Alternatives_2 )
            {
             before(grammarAccess.getRuleAccess().getAlternatives_2()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:613:1: ( rule__Rule__Alternatives_2 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:613:2: rule__Rule__Alternatives_2
            {
            pushFollow(FOLLOW_rule__Rule__Alternatives_2_in_rule__Rule__Group__2__Impl1250);
            rule__Rule__Alternatives_2();

            state._fsp--;


            }

             after(grammarAccess.getRuleAccess().getAlternatives_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__2__Impl"


    // $ANTLR start "rule__Rule__Group__3"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:623:1: rule__Rule__Group__3 : rule__Rule__Group__3__Impl rule__Rule__Group__4 ;
    public final void rule__Rule__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:627:1: ( rule__Rule__Group__3__Impl rule__Rule__Group__4 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:628:2: rule__Rule__Group__3__Impl rule__Rule__Group__4
            {
            pushFollow(FOLLOW_rule__Rule__Group__3__Impl_in_rule__Rule__Group__31280);
            rule__Rule__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Rule__Group__4_in_rule__Rule__Group__31283);
            rule__Rule__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__3"


    // $ANTLR start "rule__Rule__Group__3__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:635:1: rule__Rule__Group__3__Impl : ( ( rule__Rule__RhsAssignment_3 ) ) ;
    public final void rule__Rule__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:639:1: ( ( ( rule__Rule__RhsAssignment_3 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:640:1: ( ( rule__Rule__RhsAssignment_3 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:640:1: ( ( rule__Rule__RhsAssignment_3 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:641:1: ( rule__Rule__RhsAssignment_3 )
            {
             before(grammarAccess.getRuleAccess().getRhsAssignment_3()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:642:1: ( rule__Rule__RhsAssignment_3 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:642:2: rule__Rule__RhsAssignment_3
            {
            pushFollow(FOLLOW_rule__Rule__RhsAssignment_3_in_rule__Rule__Group__3__Impl1310);
            rule__Rule__RhsAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getRuleAccess().getRhsAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__3__Impl"


    // $ANTLR start "rule__Rule__Group__4"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:652:1: rule__Rule__Group__4 : rule__Rule__Group__4__Impl ;
    public final void rule__Rule__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:656:1: ( rule__Rule__Group__4__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:657:2: rule__Rule__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Rule__Group__4__Impl_in_rule__Rule__Group__41340);
            rule__Rule__Group__4__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__4"


    // $ANTLR start "rule__Rule__Group__4__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:663:1: rule__Rule__Group__4__Impl : ( '.' ) ;
    public final void rule__Rule__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:667:1: ( ( '.' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:668:1: ( '.' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:668:1: ( '.' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:669:1: '.'
            {
             before(grammarAccess.getRuleAccess().getFullStopKeyword_4()); 
            match(input,21,FOLLOW_21_in_rule__Rule__Group__4__Impl1368); 
             after(grammarAccess.getRuleAccess().getFullStopKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group__4__Impl"


    // $ANTLR start "rule__Rule__Group_0__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:692:1: rule__Rule__Group_0__0 : rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1 ;
    public final void rule__Rule__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:696:1: ( rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:697:2: rule__Rule__Group_0__0__Impl rule__Rule__Group_0__1
            {
            pushFollow(FOLLOW_rule__Rule__Group_0__0__Impl_in_rule__Rule__Group_0__01409);
            rule__Rule__Group_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Rule__Group_0__1_in_rule__Rule__Group_0__01412);
            rule__Rule__Group_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group_0__0"


    // $ANTLR start "rule__Rule__Group_0__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:704:1: rule__Rule__Group_0__0__Impl : ( RULE_ID ) ;
    public final void rule__Rule__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:708:1: ( ( RULE_ID ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:709:1: ( RULE_ID )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:709:1: ( RULE_ID )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:710:1: RULE_ID
            {
             before(grammarAccess.getRuleAccess().getIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Rule__Group_0__0__Impl1439); 
             after(grammarAccess.getRuleAccess().getIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group_0__0__Impl"


    // $ANTLR start "rule__Rule__Group_0__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:721:1: rule__Rule__Group_0__1 : rule__Rule__Group_0__1__Impl ;
    public final void rule__Rule__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:725:1: ( rule__Rule__Group_0__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:726:2: rule__Rule__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Rule__Group_0__1__Impl_in_rule__Rule__Group_0__11468);
            rule__Rule__Group_0__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group_0__1"


    // $ANTLR start "rule__Rule__Group_0__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:732:1: rule__Rule__Group_0__1__Impl : ( '=' ) ;
    public final void rule__Rule__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:736:1: ( ( '=' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:737:1: ( '=' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:737:1: ( '=' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:738:1: '='
            {
             before(grammarAccess.getRuleAccess().getEqualsSignKeyword_0_1()); 
            match(input,22,FOLLOW_22_in_rule__Rule__Group_0__1__Impl1496); 
             after(grammarAccess.getRuleAccess().getEqualsSignKeyword_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__Group_0__1__Impl"


    // $ANTLR start "rule__RHS__Group__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:755:1: rule__RHS__Group__0 : rule__RHS__Group__0__Impl rule__RHS__Group__1 ;
    public final void rule__RHS__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:759:1: ( rule__RHS__Group__0__Impl rule__RHS__Group__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:760:2: rule__RHS__Group__0__Impl rule__RHS__Group__1
            {
            pushFollow(FOLLOW_rule__RHS__Group__0__Impl_in_rule__RHS__Group__01531);
            rule__RHS__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RHS__Group__1_in_rule__RHS__Group__01534);
            rule__RHS__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group__0"


    // $ANTLR start "rule__RHS__Group__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:767:1: rule__RHS__Group__0__Impl : ( ruleALT ) ;
    public final void rule__RHS__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:771:1: ( ( ruleALT ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:772:1: ( ruleALT )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:772:1: ( ruleALT )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:773:1: ruleALT
            {
             before(grammarAccess.getRHSAccess().getALTParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleALT_in_rule__RHS__Group__0__Impl1561);
            ruleALT();

            state._fsp--;

             after(grammarAccess.getRHSAccess().getALTParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group__0__Impl"


    // $ANTLR start "rule__RHS__Group__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:784:1: rule__RHS__Group__1 : rule__RHS__Group__1__Impl ;
    public final void rule__RHS__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:788:1: ( rule__RHS__Group__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:789:2: rule__RHS__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__RHS__Group__1__Impl_in_rule__RHS__Group__11590);
            rule__RHS__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group__1"


    // $ANTLR start "rule__RHS__Group__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:795:1: rule__RHS__Group__1__Impl : ( ( rule__RHS__Group_1__0 )* ) ;
    public final void rule__RHS__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:799:1: ( ( ( rule__RHS__Group_1__0 )* ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:800:1: ( ( rule__RHS__Group_1__0 )* )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:800:1: ( ( rule__RHS__Group_1__0 )* )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:801:1: ( rule__RHS__Group_1__0 )*
            {
             before(grammarAccess.getRHSAccess().getGroup_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:802:1: ( rule__RHS__Group_1__0 )*
            loop12:
            do {
                int alt12=2;
                int LA12_0 = input.LA(1);

                if ( ((LA12_0>=13 && LA12_0<=14)) ) {
                    alt12=1;
                }


                switch (alt12) {
            	case 1 :
            	    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:802:2: rule__RHS__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__RHS__Group_1__0_in_rule__RHS__Group__1__Impl1617);
            	    rule__RHS__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop12;
                }
            } while (true);

             after(grammarAccess.getRHSAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group__1__Impl"


    // $ANTLR start "rule__RHS__Group_1__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:816:1: rule__RHS__Group_1__0 : rule__RHS__Group_1__0__Impl rule__RHS__Group_1__1 ;
    public final void rule__RHS__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:820:1: ( rule__RHS__Group_1__0__Impl rule__RHS__Group_1__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:821:2: rule__RHS__Group_1__0__Impl rule__RHS__Group_1__1
            {
            pushFollow(FOLLOW_rule__RHS__Group_1__0__Impl_in_rule__RHS__Group_1__01652);
            rule__RHS__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__RHS__Group_1__1_in_rule__RHS__Group_1__01655);
            rule__RHS__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group_1__0"


    // $ANTLR start "rule__RHS__Group_1__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:828:1: rule__RHS__Group_1__0__Impl : ( ( rule__RHS__Alternatives_1_0 ) ) ;
    public final void rule__RHS__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:832:1: ( ( ( rule__RHS__Alternatives_1_0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:833:1: ( ( rule__RHS__Alternatives_1_0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:833:1: ( ( rule__RHS__Alternatives_1_0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:834:1: ( rule__RHS__Alternatives_1_0 )
            {
             before(grammarAccess.getRHSAccess().getAlternatives_1_0()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:835:1: ( rule__RHS__Alternatives_1_0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:835:2: rule__RHS__Alternatives_1_0
            {
            pushFollow(FOLLOW_rule__RHS__Alternatives_1_0_in_rule__RHS__Group_1__0__Impl1682);
            rule__RHS__Alternatives_1_0();

            state._fsp--;


            }

             after(grammarAccess.getRHSAccess().getAlternatives_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group_1__0__Impl"


    // $ANTLR start "rule__RHS__Group_1__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:845:1: rule__RHS__Group_1__1 : rule__RHS__Group_1__1__Impl ;
    public final void rule__RHS__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:849:1: ( rule__RHS__Group_1__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:850:2: rule__RHS__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__RHS__Group_1__1__Impl_in_rule__RHS__Group_1__11712);
            rule__RHS__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group_1__1"


    // $ANTLR start "rule__RHS__Group_1__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:856:1: rule__RHS__Group_1__1__Impl : ( ( rule__RHS__TerminalOrLiteralAssignment_1_1 ) ) ;
    public final void rule__RHS__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:860:1: ( ( ( rule__RHS__TerminalOrLiteralAssignment_1_1 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:861:1: ( ( rule__RHS__TerminalOrLiteralAssignment_1_1 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:861:1: ( ( rule__RHS__TerminalOrLiteralAssignment_1_1 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:862:1: ( rule__RHS__TerminalOrLiteralAssignment_1_1 )
            {
             before(grammarAccess.getRHSAccess().getTerminalOrLiteralAssignment_1_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:863:1: ( rule__RHS__TerminalOrLiteralAssignment_1_1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:863:2: rule__RHS__TerminalOrLiteralAssignment_1_1
            {
            pushFollow(FOLLOW_rule__RHS__TerminalOrLiteralAssignment_1_1_in_rule__RHS__Group_1__1__Impl1739);
            rule__RHS__TerminalOrLiteralAssignment_1_1();

            state._fsp--;


            }

             after(grammarAccess.getRHSAccess().getTerminalOrLiteralAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__Group_1__1__Impl"


    // $ANTLR start "rule__ALT__Group__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:877:1: rule__ALT__Group__0 : rule__ALT__Group__0__Impl rule__ALT__Group__1 ;
    public final void rule__ALT__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:881:1: ( rule__ALT__Group__0__Impl rule__ALT__Group__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:882:2: rule__ALT__Group__0__Impl rule__ALT__Group__1
            {
            pushFollow(FOLLOW_rule__ALT__Group__0__Impl_in_rule__ALT__Group__01773);
            rule__ALT__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ALT__Group__1_in_rule__ALT__Group__01776);
            rule__ALT__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group__0"


    // $ANTLR start "rule__ALT__Group__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:889:1: rule__ALT__Group__0__Impl : ( ( rule__ALT__ElementListAssignment_0 ) ) ;
    public final void rule__ALT__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:893:1: ( ( ( rule__ALT__ElementListAssignment_0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:894:1: ( ( rule__ALT__ElementListAssignment_0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:894:1: ( ( rule__ALT__ElementListAssignment_0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:895:1: ( rule__ALT__ElementListAssignment_0 )
            {
             before(grammarAccess.getALTAccess().getElementListAssignment_0()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:896:1: ( rule__ALT__ElementListAssignment_0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:896:2: rule__ALT__ElementListAssignment_0
            {
            pushFollow(FOLLOW_rule__ALT__ElementListAssignment_0_in_rule__ALT__Group__0__Impl1803);
            rule__ALT__ElementListAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getALTAccess().getElementListAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group__0__Impl"


    // $ANTLR start "rule__ALT__Group__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:906:1: rule__ALT__Group__1 : rule__ALT__Group__1__Impl ;
    public final void rule__ALT__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:910:1: ( rule__ALT__Group__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:911:2: rule__ALT__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ALT__Group__1__Impl_in_rule__ALT__Group__11833);
            rule__ALT__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group__1"


    // $ANTLR start "rule__ALT__Group__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:917:1: rule__ALT__Group__1__Impl : ( ( rule__ALT__Group_1__0 )* ) ;
    public final void rule__ALT__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:921:1: ( ( ( rule__ALT__Group_1__0 )* ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:922:1: ( ( rule__ALT__Group_1__0 )* )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:922:1: ( ( rule__ALT__Group_1__0 )* )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:923:1: ( rule__ALT__Group_1__0 )*
            {
             before(grammarAccess.getALTAccess().getGroup_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:924:1: ( rule__ALT__Group_1__0 )*
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( ((LA13_0>=15 && LA13_0<=16)) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:924:2: rule__ALT__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__ALT__Group_1__0_in_rule__ALT__Group__1__Impl1860);
            	    rule__ALT__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop13;
                }
            } while (true);

             after(grammarAccess.getALTAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group__1__Impl"


    // $ANTLR start "rule__ALT__Group_1__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:938:1: rule__ALT__Group_1__0 : rule__ALT__Group_1__0__Impl rule__ALT__Group_1__1 ;
    public final void rule__ALT__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:942:1: ( rule__ALT__Group_1__0__Impl rule__ALT__Group_1__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:943:2: rule__ALT__Group_1__0__Impl rule__ALT__Group_1__1
            {
            pushFollow(FOLLOW_rule__ALT__Group_1__0__Impl_in_rule__ALT__Group_1__01895);
            rule__ALT__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ALT__Group_1__1_in_rule__ALT__Group_1__01898);
            rule__ALT__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group_1__0"


    // $ANTLR start "rule__ALT__Group_1__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:950:1: rule__ALT__Group_1__0__Impl : ( ( rule__ALT__Alternatives_1_0 ) ) ;
    public final void rule__ALT__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:954:1: ( ( ( rule__ALT__Alternatives_1_0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:955:1: ( ( rule__ALT__Alternatives_1_0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:955:1: ( ( rule__ALT__Alternatives_1_0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:956:1: ( rule__ALT__Alternatives_1_0 )
            {
             before(grammarAccess.getALTAccess().getAlternatives_1_0()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:957:1: ( rule__ALT__Alternatives_1_0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:957:2: rule__ALT__Alternatives_1_0
            {
            pushFollow(FOLLOW_rule__ALT__Alternatives_1_0_in_rule__ALT__Group_1__0__Impl1925);
            rule__ALT__Alternatives_1_0();

            state._fsp--;


            }

             after(grammarAccess.getALTAccess().getAlternatives_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group_1__0__Impl"


    // $ANTLR start "rule__ALT__Group_1__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:967:1: rule__ALT__Group_1__1 : rule__ALT__Group_1__1__Impl ;
    public final void rule__ALT__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:971:1: ( rule__ALT__Group_1__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:972:2: rule__ALT__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__ALT__Group_1__1__Impl_in_rule__ALT__Group_1__11955);
            rule__ALT__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group_1__1"


    // $ANTLR start "rule__ALT__Group_1__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:978:1: rule__ALT__Group_1__1__Impl : ( ( rule__ALT__ElementListAssignment_1_1 ) ) ;
    public final void rule__ALT__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:982:1: ( ( ( rule__ALT__ElementListAssignment_1_1 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:983:1: ( ( rule__ALT__ElementListAssignment_1_1 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:983:1: ( ( rule__ALT__ElementListAssignment_1_1 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:984:1: ( rule__ALT__ElementListAssignment_1_1 )
            {
             before(grammarAccess.getALTAccess().getElementListAssignment_1_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:985:1: ( rule__ALT__ElementListAssignment_1_1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:985:2: rule__ALT__ElementListAssignment_1_1
            {
            pushFollow(FOLLOW_rule__ALT__ElementListAssignment_1_1_in_rule__ALT__Group_1__1__Impl1982);
            rule__ALT__ElementListAssignment_1_1();

            state._fsp--;


            }

             after(grammarAccess.getALTAccess().getElementListAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__Group_1__1__Impl"


    // $ANTLR start "rule__ElemList__Group_0_1__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:999:1: rule__ElemList__Group_0_1__0 : rule__ElemList__Group_0_1__0__Impl rule__ElemList__Group_0_1__1 ;
    public final void rule__ElemList__Group_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1003:1: ( rule__ElemList__Group_0_1__0__Impl rule__ElemList__Group_0_1__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1004:2: rule__ElemList__Group_0_1__0__Impl rule__ElemList__Group_0_1__1
            {
            pushFollow(FOLLOW_rule__ElemList__Group_0_1__0__Impl_in_rule__ElemList__Group_0_1__02016);
            rule__ElemList__Group_0_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ElemList__Group_0_1__1_in_rule__ElemList__Group_0_1__02019);
            rule__ElemList__Group_0_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_1__0"


    // $ANTLR start "rule__ElemList__Group_0_1__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1011:1: rule__ElemList__Group_0_1__0__Impl : ( '[' ) ;
    public final void rule__ElemList__Group_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1015:1: ( ( '[' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1016:1: ( '[' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1016:1: ( '[' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1017:1: '['
            {
             before(grammarAccess.getElemListAccess().getLeftSquareBracketKeyword_0_1_0()); 
            match(input,23,FOLLOW_23_in_rule__ElemList__Group_0_1__0__Impl2047); 
             after(grammarAccess.getElemListAccess().getLeftSquareBracketKeyword_0_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_1__0__Impl"


    // $ANTLR start "rule__ElemList__Group_0_1__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1030:1: rule__ElemList__Group_0_1__1 : rule__ElemList__Group_0_1__1__Impl rule__ElemList__Group_0_1__2 ;
    public final void rule__ElemList__Group_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1034:1: ( rule__ElemList__Group_0_1__1__Impl rule__ElemList__Group_0_1__2 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1035:2: rule__ElemList__Group_0_1__1__Impl rule__ElemList__Group_0_1__2
            {
            pushFollow(FOLLOW_rule__ElemList__Group_0_1__1__Impl_in_rule__ElemList__Group_0_1__12078);
            rule__ElemList__Group_0_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ElemList__Group_0_1__2_in_rule__ElemList__Group_0_1__12081);
            rule__ElemList__Group_0_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_1__1"


    // $ANTLR start "rule__ElemList__Group_0_1__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1042:1: rule__ElemList__Group_0_1__1__Impl : ( ( rule__ElemList__RhsAssignment_0_1_1 ) ) ;
    public final void rule__ElemList__Group_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1046:1: ( ( ( rule__ElemList__RhsAssignment_0_1_1 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1047:1: ( ( rule__ElemList__RhsAssignment_0_1_1 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1047:1: ( ( rule__ElemList__RhsAssignment_0_1_1 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1048:1: ( rule__ElemList__RhsAssignment_0_1_1 )
            {
             before(grammarAccess.getElemListAccess().getRhsAssignment_0_1_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1049:1: ( rule__ElemList__RhsAssignment_0_1_1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1049:2: rule__ElemList__RhsAssignment_0_1_1
            {
            pushFollow(FOLLOW_rule__ElemList__RhsAssignment_0_1_1_in_rule__ElemList__Group_0_1__1__Impl2108);
            rule__ElemList__RhsAssignment_0_1_1();

            state._fsp--;


            }

             after(grammarAccess.getElemListAccess().getRhsAssignment_0_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_1__1__Impl"


    // $ANTLR start "rule__ElemList__Group_0_1__2"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1059:1: rule__ElemList__Group_0_1__2 : rule__ElemList__Group_0_1__2__Impl ;
    public final void rule__ElemList__Group_0_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1063:1: ( rule__ElemList__Group_0_1__2__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1064:2: rule__ElemList__Group_0_1__2__Impl
            {
            pushFollow(FOLLOW_rule__ElemList__Group_0_1__2__Impl_in_rule__ElemList__Group_0_1__22138);
            rule__ElemList__Group_0_1__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_1__2"


    // $ANTLR start "rule__ElemList__Group_0_1__2__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1070:1: rule__ElemList__Group_0_1__2__Impl : ( ']' ) ;
    public final void rule__ElemList__Group_0_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1074:1: ( ( ']' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1075:1: ( ']' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1075:1: ( ']' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1076:1: ']'
            {
             before(grammarAccess.getElemListAccess().getRightSquareBracketKeyword_0_1_2()); 
            match(input,24,FOLLOW_24_in_rule__ElemList__Group_0_1__2__Impl2166); 
             after(grammarAccess.getElemListAccess().getRightSquareBracketKeyword_0_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_1__2__Impl"


    // $ANTLR start "rule__ElemList__Group_0_2__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1095:1: rule__ElemList__Group_0_2__0 : rule__ElemList__Group_0_2__0__Impl rule__ElemList__Group_0_2__1 ;
    public final void rule__ElemList__Group_0_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1099:1: ( rule__ElemList__Group_0_2__0__Impl rule__ElemList__Group_0_2__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1100:2: rule__ElemList__Group_0_2__0__Impl rule__ElemList__Group_0_2__1
            {
            pushFollow(FOLLOW_rule__ElemList__Group_0_2__0__Impl_in_rule__ElemList__Group_0_2__02203);
            rule__ElemList__Group_0_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ElemList__Group_0_2__1_in_rule__ElemList__Group_0_2__02206);
            rule__ElemList__Group_0_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_2__0"


    // $ANTLR start "rule__ElemList__Group_0_2__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1107:1: rule__ElemList__Group_0_2__0__Impl : ( '(' ) ;
    public final void rule__ElemList__Group_0_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1111:1: ( ( '(' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1112:1: ( '(' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1112:1: ( '(' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1113:1: '('
            {
             before(grammarAccess.getElemListAccess().getLeftParenthesisKeyword_0_2_0()); 
            match(input,25,FOLLOW_25_in_rule__ElemList__Group_0_2__0__Impl2234); 
             after(grammarAccess.getElemListAccess().getLeftParenthesisKeyword_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_2__0__Impl"


    // $ANTLR start "rule__ElemList__Group_0_2__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1126:1: rule__ElemList__Group_0_2__1 : rule__ElemList__Group_0_2__1__Impl rule__ElemList__Group_0_2__2 ;
    public final void rule__ElemList__Group_0_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1130:1: ( rule__ElemList__Group_0_2__1__Impl rule__ElemList__Group_0_2__2 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1131:2: rule__ElemList__Group_0_2__1__Impl rule__ElemList__Group_0_2__2
            {
            pushFollow(FOLLOW_rule__ElemList__Group_0_2__1__Impl_in_rule__ElemList__Group_0_2__12265);
            rule__ElemList__Group_0_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ElemList__Group_0_2__2_in_rule__ElemList__Group_0_2__12268);
            rule__ElemList__Group_0_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_2__1"


    // $ANTLR start "rule__ElemList__Group_0_2__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1138:1: rule__ElemList__Group_0_2__1__Impl : ( ( rule__ElemList__RhsAssignment_0_2_1 ) ) ;
    public final void rule__ElemList__Group_0_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1142:1: ( ( ( rule__ElemList__RhsAssignment_0_2_1 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1143:1: ( ( rule__ElemList__RhsAssignment_0_2_1 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1143:1: ( ( rule__ElemList__RhsAssignment_0_2_1 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1144:1: ( rule__ElemList__RhsAssignment_0_2_1 )
            {
             before(grammarAccess.getElemListAccess().getRhsAssignment_0_2_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1145:1: ( rule__ElemList__RhsAssignment_0_2_1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1145:2: rule__ElemList__RhsAssignment_0_2_1
            {
            pushFollow(FOLLOW_rule__ElemList__RhsAssignment_0_2_1_in_rule__ElemList__Group_0_2__1__Impl2295);
            rule__ElemList__RhsAssignment_0_2_1();

            state._fsp--;


            }

             after(grammarAccess.getElemListAccess().getRhsAssignment_0_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_2__1__Impl"


    // $ANTLR start "rule__ElemList__Group_0_2__2"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1155:1: rule__ElemList__Group_0_2__2 : rule__ElemList__Group_0_2__2__Impl ;
    public final void rule__ElemList__Group_0_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1159:1: ( rule__ElemList__Group_0_2__2__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1160:2: rule__ElemList__Group_0_2__2__Impl
            {
            pushFollow(FOLLOW_rule__ElemList__Group_0_2__2__Impl_in_rule__ElemList__Group_0_2__22325);
            rule__ElemList__Group_0_2__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_2__2"


    // $ANTLR start "rule__ElemList__Group_0_2__2__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1166:1: rule__ElemList__Group_0_2__2__Impl : ( ')' ) ;
    public final void rule__ElemList__Group_0_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1170:1: ( ( ')' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1171:1: ( ')' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1171:1: ( ')' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1172:1: ')'
            {
             before(grammarAccess.getElemListAccess().getRightParenthesisKeyword_0_2_2()); 
            match(input,26,FOLLOW_26_in_rule__ElemList__Group_0_2__2__Impl2353); 
             after(grammarAccess.getElemListAccess().getRightParenthesisKeyword_0_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_0_2__2__Impl"


    // $ANTLR start "rule__ElemList__Group_1__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1191:1: rule__ElemList__Group_1__0 : rule__ElemList__Group_1__0__Impl rule__ElemList__Group_1__1 ;
    public final void rule__ElemList__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1195:1: ( rule__ElemList__Group_1__0__Impl rule__ElemList__Group_1__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1196:2: rule__ElemList__Group_1__0__Impl rule__ElemList__Group_1__1
            {
            pushFollow(FOLLOW_rule__ElemList__Group_1__0__Impl_in_rule__ElemList__Group_1__02390);
            rule__ElemList__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ElemList__Group_1__1_in_rule__ElemList__Group_1__02393);
            rule__ElemList__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_1__0"


    // $ANTLR start "rule__ElemList__Group_1__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1203:1: rule__ElemList__Group_1__0__Impl : ( '&' ) ;
    public final void rule__ElemList__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1207:1: ( ( '&' ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1208:1: ( '&' )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1208:1: ( '&' )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1209:1: '&'
            {
             before(grammarAccess.getElemListAccess().getAmpersandKeyword_1_0()); 
            match(input,27,FOLLOW_27_in_rule__ElemList__Group_1__0__Impl2421); 
             after(grammarAccess.getElemListAccess().getAmpersandKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_1__0__Impl"


    // $ANTLR start "rule__ElemList__Group_1__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1222:1: rule__ElemList__Group_1__1 : rule__ElemList__Group_1__1__Impl ;
    public final void rule__ElemList__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1226:1: ( rule__ElemList__Group_1__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1227:2: rule__ElemList__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__ElemList__Group_1__1__Impl_in_rule__ElemList__Group_1__12452);
            rule__ElemList__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_1__1"


    // $ANTLR start "rule__ElemList__Group_1__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1233:1: rule__ElemList__Group_1__1__Impl : ( RULE_STRING ) ;
    public final void rule__ElemList__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1237:1: ( ( RULE_STRING ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1238:1: ( RULE_STRING )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1238:1: ( RULE_STRING )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1239:1: RULE_STRING
            {
             before(grammarAccess.getElemListAccess().getSTRINGTerminalRuleCall_1_1()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ElemList__Group_1__1__Impl2479); 
             after(grammarAccess.getElemListAccess().getSTRINGTerminalRuleCall_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_1__1__Impl"


    // $ANTLR start "rule__ElemList__Group_2__0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1254:1: rule__ElemList__Group_2__0 : rule__ElemList__Group_2__0__Impl rule__ElemList__Group_2__1 ;
    public final void rule__ElemList__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1258:1: ( rule__ElemList__Group_2__0__Impl rule__ElemList__Group_2__1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1259:2: rule__ElemList__Group_2__0__Impl rule__ElemList__Group_2__1
            {
            pushFollow(FOLLOW_rule__ElemList__Group_2__0__Impl_in_rule__ElemList__Group_2__02512);
            rule__ElemList__Group_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ElemList__Group_2__1_in_rule__ElemList__Group_2__02515);
            rule__ElemList__Group_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_2__0"


    // $ANTLR start "rule__ElemList__Group_2__0__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1266:1: rule__ElemList__Group_2__0__Impl : ( ( rule__ElemList__Alternatives_2_0 ) ) ;
    public final void rule__ElemList__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1270:1: ( ( ( rule__ElemList__Alternatives_2_0 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1271:1: ( ( rule__ElemList__Alternatives_2_0 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1271:1: ( ( rule__ElemList__Alternatives_2_0 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1272:1: ( rule__ElemList__Alternatives_2_0 )
            {
             before(grammarAccess.getElemListAccess().getAlternatives_2_0()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1273:1: ( rule__ElemList__Alternatives_2_0 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1273:2: rule__ElemList__Alternatives_2_0
            {
            pushFollow(FOLLOW_rule__ElemList__Alternatives_2_0_in_rule__ElemList__Group_2__0__Impl2542);
            rule__ElemList__Alternatives_2_0();

            state._fsp--;


            }

             after(grammarAccess.getElemListAccess().getAlternatives_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_2__0__Impl"


    // $ANTLR start "rule__ElemList__Group_2__1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1283:1: rule__ElemList__Group_2__1 : rule__ElemList__Group_2__1__Impl ;
    public final void rule__ElemList__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1287:1: ( rule__ElemList__Group_2__1__Impl )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1288:2: rule__ElemList__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__ElemList__Group_2__1__Impl_in_rule__ElemList__Group_2__12572);
            rule__ElemList__Group_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_2__1"


    // $ANTLR start "rule__ElemList__Group_2__1__Impl"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1294:1: rule__ElemList__Group_2__1__Impl : ( ( rule__ElemList__TerminalOrLiteralAssignment_2_1 ) ) ;
    public final void rule__ElemList__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1298:1: ( ( ( rule__ElemList__TerminalOrLiteralAssignment_2_1 ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1299:1: ( ( rule__ElemList__TerminalOrLiteralAssignment_2_1 ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1299:1: ( ( rule__ElemList__TerminalOrLiteralAssignment_2_1 ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1300:1: ( rule__ElemList__TerminalOrLiteralAssignment_2_1 )
            {
             before(grammarAccess.getElemListAccess().getTerminalOrLiteralAssignment_2_1()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1301:1: ( rule__ElemList__TerminalOrLiteralAssignment_2_1 )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1301:2: rule__ElemList__TerminalOrLiteralAssignment_2_1
            {
            pushFollow(FOLLOW_rule__ElemList__TerminalOrLiteralAssignment_2_1_in_rule__ElemList__Group_2__1__Impl2599);
            rule__ElemList__TerminalOrLiteralAssignment_2_1();

            state._fsp--;


            }

             after(grammarAccess.getElemListAccess().getTerminalOrLiteralAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__Group_2__1__Impl"


    // $ANTLR start "rule__ConSpec__RulesAssignment"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1316:1: rule__ConSpec__RulesAssignment : ( ruleRule ) ;
    public final void rule__ConSpec__RulesAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1320:1: ( ( ruleRule ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1321:1: ( ruleRule )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1321:1: ( ruleRule )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1322:1: ruleRule
            {
             before(grammarAccess.getConSpecAccess().getRulesRuleParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleRule_in_rule__ConSpec__RulesAssignment2638);
            ruleRule();

            state._fsp--;

             after(grammarAccess.getConSpecAccess().getRulesRuleParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ConSpec__RulesAssignment"


    // $ANTLR start "rule__Rule__NonTerminalAssignment_1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1331:1: rule__Rule__NonTerminalAssignment_1 : ( ruleNonTerminal ) ;
    public final void rule__Rule__NonTerminalAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1335:1: ( ( ruleNonTerminal ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1336:1: ( ruleNonTerminal )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1336:1: ( ruleNonTerminal )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1337:1: ruleNonTerminal
            {
             before(grammarAccess.getRuleAccess().getNonTerminalNonTerminalParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleNonTerminal_in_rule__Rule__NonTerminalAssignment_12669);
            ruleNonTerminal();

            state._fsp--;

             after(grammarAccess.getRuleAccess().getNonTerminalNonTerminalParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__NonTerminalAssignment_1"


    // $ANTLR start "rule__Rule__RhsAssignment_3"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1346:1: rule__Rule__RhsAssignment_3 : ( ruleRHS ) ;
    public final void rule__Rule__RhsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1350:1: ( ( ruleRHS ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1351:1: ( ruleRHS )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1351:1: ( ruleRHS )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1352:1: ruleRHS
            {
             before(grammarAccess.getRuleAccess().getRhsRHSParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleRHS_in_rule__Rule__RhsAssignment_32700);
            ruleRHS();

            state._fsp--;

             after(grammarAccess.getRuleAccess().getRhsRHSParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Rule__RhsAssignment_3"


    // $ANTLR start "rule__RHS__TerminalOrLiteralAssignment_1_1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1361:1: rule__RHS__TerminalOrLiteralAssignment_1_1 : ( ruleTerminalOrLiteral ) ;
    public final void rule__RHS__TerminalOrLiteralAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1365:1: ( ( ruleTerminalOrLiteral ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1366:1: ( ruleTerminalOrLiteral )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1366:1: ( ruleTerminalOrLiteral )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1367:1: ruleTerminalOrLiteral
            {
             before(grammarAccess.getRHSAccess().getTerminalOrLiteralTerminalOrLiteralParserRuleCall_1_1_0()); 
            pushFollow(FOLLOW_ruleTerminalOrLiteral_in_rule__RHS__TerminalOrLiteralAssignment_1_12731);
            ruleTerminalOrLiteral();

            state._fsp--;

             after(grammarAccess.getRHSAccess().getTerminalOrLiteralTerminalOrLiteralParserRuleCall_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RHS__TerminalOrLiteralAssignment_1_1"


    // $ANTLR start "rule__ALT__ElementListAssignment_0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1376:1: rule__ALT__ElementListAssignment_0 : ( ruleElemList ) ;
    public final void rule__ALT__ElementListAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1380:1: ( ( ruleElemList ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1381:1: ( ruleElemList )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1381:1: ( ruleElemList )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1382:1: ruleElemList
            {
             before(grammarAccess.getALTAccess().getElementListElemListParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleElemList_in_rule__ALT__ElementListAssignment_02762);
            ruleElemList();

            state._fsp--;

             after(grammarAccess.getALTAccess().getElementListElemListParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__ElementListAssignment_0"


    // $ANTLR start "rule__ALT__ElementListAssignment_1_1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1391:1: rule__ALT__ElementListAssignment_1_1 : ( ruleElemList ) ;
    public final void rule__ALT__ElementListAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1395:1: ( ( ruleElemList ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1396:1: ( ruleElemList )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1396:1: ( ruleElemList )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1397:1: ruleElemList
            {
             before(grammarAccess.getALTAccess().getElementListElemListParserRuleCall_1_1_0()); 
            pushFollow(FOLLOW_ruleElemList_in_rule__ALT__ElementListAssignment_1_12793);
            ruleElemList();

            state._fsp--;

             after(grammarAccess.getALTAccess().getElementListElemListParserRuleCall_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ALT__ElementListAssignment_1_1"


    // $ANTLR start "rule__ElemList__TerminalOrLiteralAssignment_0_0"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1406:1: rule__ElemList__TerminalOrLiteralAssignment_0_0 : ( ruleTerminalOrLiteral ) ;
    public final void rule__ElemList__TerminalOrLiteralAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1410:1: ( ( ruleTerminalOrLiteral ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1411:1: ( ruleTerminalOrLiteral )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1411:1: ( ruleTerminalOrLiteral )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1412:1: ruleTerminalOrLiteral
            {
             before(grammarAccess.getElemListAccess().getTerminalOrLiteralTerminalOrLiteralParserRuleCall_0_0_0()); 
            pushFollow(FOLLOW_ruleTerminalOrLiteral_in_rule__ElemList__TerminalOrLiteralAssignment_0_02824);
            ruleTerminalOrLiteral();

            state._fsp--;

             after(grammarAccess.getElemListAccess().getTerminalOrLiteralTerminalOrLiteralParserRuleCall_0_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__TerminalOrLiteralAssignment_0_0"


    // $ANTLR start "rule__ElemList__RhsAssignment_0_1_1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1421:1: rule__ElemList__RhsAssignment_0_1_1 : ( ruleRHS ) ;
    public final void rule__ElemList__RhsAssignment_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1425:1: ( ( ruleRHS ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1426:1: ( ruleRHS )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1426:1: ( ruleRHS )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1427:1: ruleRHS
            {
             before(grammarAccess.getElemListAccess().getRhsRHSParserRuleCall_0_1_1_0()); 
            pushFollow(FOLLOW_ruleRHS_in_rule__ElemList__RhsAssignment_0_1_12855);
            ruleRHS();

            state._fsp--;

             after(grammarAccess.getElemListAccess().getRhsRHSParserRuleCall_0_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__RhsAssignment_0_1_1"


    // $ANTLR start "rule__ElemList__RhsAssignment_0_2_1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1436:1: rule__ElemList__RhsAssignment_0_2_1 : ( ruleRHS ) ;
    public final void rule__ElemList__RhsAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1440:1: ( ( ruleRHS ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1441:1: ( ruleRHS )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1441:1: ( ruleRHS )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1442:1: ruleRHS
            {
             before(grammarAccess.getElemListAccess().getRhsRHSParserRuleCall_0_2_1_0()); 
            pushFollow(FOLLOW_ruleRHS_in_rule__ElemList__RhsAssignment_0_2_12886);
            ruleRHS();

            state._fsp--;

             after(grammarAccess.getElemListAccess().getRhsRHSParserRuleCall_0_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__RhsAssignment_0_2_1"


    // $ANTLR start "rule__ElemList__TerminalOrLiteralAssignment_2_1"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1451:1: rule__ElemList__TerminalOrLiteralAssignment_2_1 : ( ruleTerminalOrLiteral ) ;
    public final void rule__ElemList__TerminalOrLiteralAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1455:1: ( ( ruleTerminalOrLiteral ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1456:1: ( ruleTerminalOrLiteral )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1456:1: ( ruleTerminalOrLiteral )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1457:1: ruleTerminalOrLiteral
            {
             before(grammarAccess.getElemListAccess().getTerminalOrLiteralTerminalOrLiteralParserRuleCall_2_1_0()); 
            pushFollow(FOLLOW_ruleTerminalOrLiteral_in_rule__ElemList__TerminalOrLiteralAssignment_2_12917);
            ruleTerminalOrLiteral();

            state._fsp--;

             after(grammarAccess.getElemListAccess().getTerminalOrLiteralTerminalOrLiteralParserRuleCall_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ElemList__TerminalOrLiteralAssignment_2_1"


    // $ANTLR start "rule__Reference__RefAssignment"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1466:1: rule__Reference__RefAssignment : ( ( RULE_ID ) ) ;
    public final void rule__Reference__RefAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1470:1: ( ( ( RULE_ID ) ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1471:1: ( ( RULE_ID ) )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1471:1: ( ( RULE_ID ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1472:1: ( RULE_ID )
            {
             before(grammarAccess.getReferenceAccess().getRefTokenNameCrossReference_0()); 
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1473:1: ( RULE_ID )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1474:1: RULE_ID
            {
             before(grammarAccess.getReferenceAccess().getRefTokenNameIDTerminalRuleCall_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Reference__RefAssignment2952); 
             after(grammarAccess.getReferenceAccess().getRefTokenNameIDTerminalRuleCall_0_1()); 

            }

             after(grammarAccess.getReferenceAccess().getRefTokenNameCrossReference_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Reference__RefAssignment"


    // $ANTLR start "rule__Literal__RefAssignment"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1485:1: rule__Literal__RefAssignment : ( RULE_STRING ) ;
    public final void rule__Literal__RefAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1489:1: ( ( RULE_STRING ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1490:1: ( RULE_STRING )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1490:1: ( RULE_STRING )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1491:1: RULE_STRING
            {
             before(grammarAccess.getLiteralAccess().getRefSTRINGTerminalRuleCall_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Literal__RefAssignment2987); 
             after(grammarAccess.getLiteralAccess().getRefSTRINGTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Literal__RefAssignment"


    // $ANTLR start "rule__NonTerminal__NameAssignment"
    // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1500:1: rule__NonTerminal__NameAssignment : ( RULE_ID ) ;
    public final void rule__NonTerminal__NameAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1504:1: ( ( RULE_ID ) )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1505:1: ( RULE_ID )
            {
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1505:1: ( RULE_ID )
            // ../de.sabram.upb.specs.con.ui/src-gen/de/sabram/upb/specs/ui/contentassist/antlr/internal/InternalCon.g:1506:1: RULE_ID
            {
             before(grammarAccess.getNonTerminalAccess().getNameIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__NonTerminal__NameAssignment3018); 
             after(grammarAccess.getNonTerminalAccess().getNameIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NonTerminal__NameAssignment"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleConSpec_in_entryRuleConSpec66 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleConSpec73 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ConSpec__RulesAssignment_in_ruleConSpec103 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_ruleRule_in_entryRuleRule131 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRule138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group__0_in_ruleRule164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRHS_in_entryRuleRHS191 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRHS198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__Group__0_in_ruleRHS224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleALT_in_entryRuleALT251 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleALT258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__Group__0_in_ruleALT284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleElemList_in_entryRuleElemList311 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleElemList318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Alternatives_in_ruleElemList344 = new BitSet(new long[]{0x000000000A9E0032L});
    public static final BitSet FOLLOW_ruleTerminalOrLiteral_in_entryRuleTerminalOrLiteral372 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTerminalOrLiteral379 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TerminalOrLiteral__Alternatives_in_ruleTerminalOrLiteral405 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReference_in_entryRuleReference432 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleReference439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Reference__RefAssignment_in_ruleReference465 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLiteral_in_entryRuleLiteral492 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLiteral499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Literal__RefAssignment_in_ruleLiteral525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNonTerminal_in_entryRuleNonTerminal552 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNonTerminal559 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NonTerminal__NameAssignment_in_ruleNonTerminal585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__Rule__Alternatives_2622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Rule__Alternatives_2642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__RHS__Alternatives_1_0677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__RHS__Alternatives_1_0697 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__ALT__Alternatives_1_0732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__ALT__Alternatives_1_0752 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Alternatives_0_in_rule__ElemList__Alternatives786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_1__0_in_rule__ElemList__Alternatives804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_2__0_in_rule__ElemList__Alternatives822 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__TerminalOrLiteralAssignment_0_0_in_rule__ElemList__Alternatives_0855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_1__0_in_rule__ElemList__Alternatives_0873 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_2__0_in_rule__ElemList__Alternatives_0891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Alternatives_0_3_in_rule__ElemList__Alternatives_0909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__ElemList__Alternatives_0_3943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__ElemList__Alternatives_0_3963 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__ElemList__Alternatives_2_0998 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__ElemList__Alternatives_2_01018 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleReference_in_rule__TerminalOrLiteral__Alternatives1052 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLiteral_in_rule__TerminalOrLiteral__Alternatives1069 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group__0__Impl_in_rule__Rule__Group__01099 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Rule__Group__1_in_rule__Rule__Group__01102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group_0__0_in_rule__Rule__Group__0__Impl1129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group__1__Impl_in_rule__Rule__Group__11160 = new BitSet(new long[]{0x0000000000001800L});
    public static final BitSet FOLLOW_rule__Rule__Group__2_in_rule__Rule__Group__11163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__NonTerminalAssignment_1_in_rule__Rule__Group__1__Impl1190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group__2__Impl_in_rule__Rule__Group__21220 = new BitSet(new long[]{0x000000000A9E0030L});
    public static final BitSet FOLLOW_rule__Rule__Group__3_in_rule__Rule__Group__21223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Alternatives_2_in_rule__Rule__Group__2__Impl1250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group__3__Impl_in_rule__Rule__Group__31280 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Rule__Group__4_in_rule__Rule__Group__31283 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__RhsAssignment_3_in_rule__Rule__Group__3__Impl1310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group__4__Impl_in_rule__Rule__Group__41340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Rule__Group__4__Impl1368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group_0__0__Impl_in_rule__Rule__Group_0__01409 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Rule__Group_0__1_in_rule__Rule__Group_0__01412 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Rule__Group_0__0__Impl1439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Rule__Group_0__1__Impl_in_rule__Rule__Group_0__11468 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Rule__Group_0__1__Impl1496 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__Group__0__Impl_in_rule__RHS__Group__01531 = new BitSet(new long[]{0x0000000000006000L});
    public static final BitSet FOLLOW_rule__RHS__Group__1_in_rule__RHS__Group__01534 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleALT_in_rule__RHS__Group__0__Impl1561 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__Group__1__Impl_in_rule__RHS__Group__11590 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__Group_1__0_in_rule__RHS__Group__1__Impl1617 = new BitSet(new long[]{0x0000000000006002L});
    public static final BitSet FOLLOW_rule__RHS__Group_1__0__Impl_in_rule__RHS__Group_1__01652 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__RHS__Group_1__1_in_rule__RHS__Group_1__01655 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__Alternatives_1_0_in_rule__RHS__Group_1__0__Impl1682 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__Group_1__1__Impl_in_rule__RHS__Group_1__11712 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RHS__TerminalOrLiteralAssignment_1_1_in_rule__RHS__Group_1__1__Impl1739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__Group__0__Impl_in_rule__ALT__Group__01773 = new BitSet(new long[]{0x0000000000018000L});
    public static final BitSet FOLLOW_rule__ALT__Group__1_in_rule__ALT__Group__01776 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__ElementListAssignment_0_in_rule__ALT__Group__0__Impl1803 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__Group__1__Impl_in_rule__ALT__Group__11833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__Group_1__0_in_rule__ALT__Group__1__Impl1860 = new BitSet(new long[]{0x0000000000018002L});
    public static final BitSet FOLLOW_rule__ALT__Group_1__0__Impl_in_rule__ALT__Group_1__01895 = new BitSet(new long[]{0x000000000A9E0030L});
    public static final BitSet FOLLOW_rule__ALT__Group_1__1_in_rule__ALT__Group_1__01898 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__Alternatives_1_0_in_rule__ALT__Group_1__0__Impl1925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__Group_1__1__Impl_in_rule__ALT__Group_1__11955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ALT__ElementListAssignment_1_1_in_rule__ALT__Group_1__1__Impl1982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_1__0__Impl_in_rule__ElemList__Group_0_1__02016 = new BitSet(new long[]{0x000000000A9E0030L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_1__1_in_rule__ElemList__Group_0_1__02019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__ElemList__Group_0_1__0__Impl2047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_1__1__Impl_in_rule__ElemList__Group_0_1__12078 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_1__2_in_rule__ElemList__Group_0_1__12081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__RhsAssignment_0_1_1_in_rule__ElemList__Group_0_1__1__Impl2108 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_1__2__Impl_in_rule__ElemList__Group_0_1__22138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__ElemList__Group_0_1__2__Impl2166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_2__0__Impl_in_rule__ElemList__Group_0_2__02203 = new BitSet(new long[]{0x000000000A9E0030L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_2__1_in_rule__ElemList__Group_0_2__02206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__ElemList__Group_0_2__0__Impl2234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_2__1__Impl_in_rule__ElemList__Group_0_2__12265 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_2__2_in_rule__ElemList__Group_0_2__12268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__RhsAssignment_0_2_1_in_rule__ElemList__Group_0_2__1__Impl2295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_0_2__2__Impl_in_rule__ElemList__Group_0_2__22325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__ElemList__Group_0_2__2__Impl2353 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_1__0__Impl_in_rule__ElemList__Group_1__02390 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__ElemList__Group_1__1_in_rule__ElemList__Group_1__02393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__ElemList__Group_1__0__Impl2421 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_1__1__Impl_in_rule__ElemList__Group_1__12452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__ElemList__Group_1__1__Impl2479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_2__0__Impl_in_rule__ElemList__Group_2__02512 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__ElemList__Group_2__1_in_rule__ElemList__Group_2__02515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Alternatives_2_0_in_rule__ElemList__Group_2__0__Impl2542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__Group_2__1__Impl_in_rule__ElemList__Group_2__12572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ElemList__TerminalOrLiteralAssignment_2_1_in_rule__ElemList__Group_2__1__Impl2599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRule_in_rule__ConSpec__RulesAssignment2638 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNonTerminal_in_rule__Rule__NonTerminalAssignment_12669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRHS_in_rule__Rule__RhsAssignment_32700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerminalOrLiteral_in_rule__RHS__TerminalOrLiteralAssignment_1_12731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleElemList_in_rule__ALT__ElementListAssignment_02762 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleElemList_in_rule__ALT__ElementListAssignment_1_12793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerminalOrLiteral_in_rule__ElemList__TerminalOrLiteralAssignment_0_02824 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRHS_in_rule__ElemList__RhsAssignment_0_1_12855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRHS_in_rule__ElemList__RhsAssignment_0_2_12886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerminalOrLiteral_in_rule__ElemList__TerminalOrLiteralAssignment_2_12917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Reference__RefAssignment2952 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Literal__RefAssignment2987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__NonTerminal__NameAssignment3018 = new BitSet(new long[]{0x0000000000000002L});

}